package com.example.emoji.ui;

import android.content.Context;
import android.content.res.TypedArray;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.DynamicDrawableSpan;
import android.util.AttributeSet;

import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;

import com.example.emoji.R;

public class EmojiconTextView extends AppCompatTextView {
    private int mEmojiconSize;
    private int mEmojiconAlignment;
    private int mEmojiconTextSize;
    private int mTextStart = 0;
    private int mTextLength = -1;
    private boolean mUseSystemDefault = false;
    public EmojiconTextView(@NonNull Context context) {
        super(context);
        init(null);
    }

    public EmojiconTextView(Context context, AttributeSet attributeSet){
        super(context,attributeSet);
        init(attributeSet);
    }

    public EmojiconTextView(Context context,AttributeSet attributeSet,int defStyle){
        super(context,attributeSet,defStyle);
        init(attributeSet);
    }

    private void init(AttributeSet attributeSet) {
        mEmojiconTextSize = (int)getTextSize();
        if(attributeSet ==null){
            mEmojiconSize = (int)getTextSize();
        }else{
            TypedArray a = getContext().obtainStyledAttributes(attributeSet, R.styleable.Emojicon);
            mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize,getTextSize());
            mEmojiconAlignment = a.getInt(R.styleable.Emojicon_emojiconAlignment,
                    DynamicDrawableSpan.ALIGN_BASELINE
                    );
            mTextStart = a.getInteger(R.styleable.Emojicon_emojiconTextStart,0);
            mTextLength = a.getInteger(R.styleable.Emojicon_emojiconTextLength,-1);
            mUseSystemDefault = a.getBoolean(R.styleable.Emojicon_emojiconUseSystemDefault,false);
            a.recycle();
        }
        setText(getText());
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        if(!TextUtils.isEmpty(text)){
            SpannableStringBuilder builder = new SpannableStringBuilder(text);
        }
        super.setText(text, type);
    }
    public void setEmojiconSize(int pixels) {
        mEmojiconSize = pixels;
        super.setText(getText());
    }

    /**
     * Set whether to use system default emojicon
     */
    public void setUseSystemDefault(boolean useSystemDefault) {
        mUseSystemDefault = useSystemDefault;
    }
}
